package com.jindy.module.salary.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.jindy.common.annotation.Excel;
import com.jindy.common.core.domain.BaseEntity;

/**
 * 薪资对象 t_salary
 *
 * @author ruoyi
 * @date 2022-09-28
 */
@Data
public class Salary extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 姓名 */
    @Excel(name = "姓名")
    private String staffName;

    /** 员工id */
    @Excel(name = "员工id")
    private String staffId;

    /** 身份证号 */
    @Excel(name = "身份证号")
    private String idCardNumber;

    /** 手机号码 */
    @Excel(name = "手机号码")
    private String telephone;

    /** 开户行 */
    @Excel(name = "开户行")
    private String bank;

    /** 银行卡号 */
    @Excel(name = "银行卡号")
    private String bankCardNo;

    /** 部门id */
    @Excel(name = "部门id")
    private String deptId;

    /** 部门名称 */
    @Excel(name = "部门名称")
    private String deptName;

    /** 基本工资 */
    @Excel(name = "基本工资")
    private BigDecimal basePay;

    /** 绩效 */
    @Excel(name = "绩效")
    private BigDecimal achievement;

    /** 薪资应发合计 */
    @Excel(name = "薪资应发合计")
    private BigDecimal totalSalary;

    /** 事假 */
    @Excel(name = "事假")
    private BigDecimal compassionateLeave;

    /** 病假 */
    @Excel(name = "病假")
    private BigDecimal sickLeave;

    /** 缺勤 */
    @Excel(name = "缺勤")
    private BigDecimal absence;

    /** 迟到早退 */
    @Excel(name = "迟到早退")
    private BigDecimal late;

    /** 缺卡 */
    @Excel(name = "缺卡")
    private BigDecimal cardShortage;

    /** 扣款小计 */
    @Excel(name = "扣款小计")
    private BigDecimal totalDeduction;

    /** 补贴/加班 */
    @Excel(name = "补贴/加班")
    private BigDecimal subsidy;

    /** 满勤奖 */
    @Excel(name = "满勤奖")
    private BigDecimal fullAttendance;

    /** 工龄工资 */
    @Excel(name = "工龄工资")
    private BigDecimal seniorityPay;

    /** 变动工资小计 */
    @Excel(name = "变动工资小计")
    private BigDecimal totalChange;

    /** 租赁提成 */
    @Excel(name = "租赁提成")
    private BigDecimal leaseCommission;

    /** 销售提成 */
    @Excel(name = "销售提成")
    private BigDecimal salesCommission;

    /** 管理提成 */
    @Excel(name = "管理提成")
    private BigDecimal managementCommission;

    /** 技术提成 */
    @Excel(name = "技术提成")
    private BigDecimal technicalCommission;

    /** 其他提成 */
    @Excel(name = "其他提成")
    private BigDecimal otherCommission;

    /** 提成小计 */
    @Excel(name = "提成小计")
    private BigDecimal totalCommission;

    /** 扣除 */
    @Excel(name = "扣除")
    private BigDecimal deduction;

    /** 个人养老保险 */
    @Excel(name = "个人养老保险")
    private BigDecimal personalEndowmentInsurance;

    /** 个人社保小计 */
    @Excel(name = "个人社保小计")
    private BigDecimal personalTotalInsurance;

    /** 个人医疗保险 */
    @Excel(name = "个人医疗保险")
    private BigDecimal personalMedicalInsurance;

    /** 个人失业保险 */
    @Excel(name = "个人失业保险")
    private BigDecimal personalUnemploymentInsurance;

    /** 单位养老保险 */
    @Excel(name = "单位养老保险")
    private BigDecimal companyEndowmentInsurance;

    /** 单位医疗保险 */
    @Excel(name = "单位医疗保险")
    private BigDecimal companyMedicalInsurance;

    /** 单位工伤保险 */
    @Excel(name = "单位工伤保险")
    private BigDecimal companyIndustrialInjuryInsurance;

    /** 单位失业保险 */
    @Excel(name = "单位失业保险")
    private BigDecimal companyUnemploymentInsurance;

    /** 单位社保小计 */
    @Excel(name = "单位社保小计")
    private BigDecimal companyTotalInsurance;

    /** 个人所得税 */
    @Excel(name = "个人所得税")
    private BigDecimal individualIncomeTax;

    /** 其他扣除 */
    @Excel(name = "其他扣除")
    private BigDecimal otherDeductions;

    /** 实发工资 */
    @Excel(name = "实发工资")
    private BigDecimal netSalary;

    /** 人工成本 */
    @Excel(name = "人工成本")
    private BigDecimal laborCost;

    /** 创建者id */
    @Excel(name = "创建者id")
    private String createId;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 删除标志（0代表存在 2代表删除） */
    private String delFlag;

    /** 工资所属月份 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "工资所属月份", width = 30, dateFormat = "yyyy-MM-dd")
    private Date salaryMonth;

    /**
     * 查看权限（用户id)
     */
    private Long userId;


}
